Network applications running on computer systems between two computers (such as those providing remote desktop connectivity) are often difficult to set up. They require complex procedures or technical networking expertise to navigate the security safeguards (e.g. firewall) that are in place to prevent unauthorized access by hackers.
For example, a remote desktop connection client may have difficulty accessing the remote desktop services made available by another computer if the latter computer is behind a firewall. To allow access, the firewall (whether based on hardware or software) typically has to open up ports so as to pass through connection attempts to the computer offering the service.
Even solutions designed to provide secure communications between two computer systems over the public Internet such as Virtual Private Networks (VPNs) encounter the same problems of requiring firewall configuration before communication can freely occur. For example, a firewall may need to be configured to allow passthrough of Point-to-point Tunnel Protocol (PPTP) or Internet Protocol Security (IPSec) before a VPN may be established.
The requirement of firewall configuration creates several problems. First, it is challenging and troublesome for a person to use the services offered at a target computer (especially for one without technical expertise). Second, such configuration increases security risk by potentially providing an additional avenue for malicious hackers to compromise the computer offering the services.